-- Create table
create table T_EMP
(
  id          NUMBER(8) not null,
  emp_no      VARCHAR2(10) not null,
  emp_name    VARCHAR2(10),
  dept_no     NUMBER(2),
  create_time DATE default sysdate,
  update_time DATE
);

create or replace procedure proc_emp_course is
begin

  for cour in (select id, emp_no, emp_name, dept_no, create_time, update_time FROM T_EMP )loop
    -- java ,javascript +拼接，mysql 用CONCAT函数，oracle 用||
    dbms_output.put_line(cour.id||'   '||cour.emp_name);
  end loop;

  /*
  for(Object obj:select id, emp_no, emp_name, dept_no, create_time, update_time FROM T_EMP){
   obj.id
  }
  */

END;

create or replace procedure proc_emp_course_three is
 CURSOR emp_cursor IS  SELECT id, emp_no, emp_name, dept_no, create_time, update_time FROM T_EMP;
begin
  for cour in emp_cursor loop
    -- java ,javascript +拼接，mysql 用CONCAT函数，oracle 用||
    dbms_output.put_line(cour.id||'   '||cour.emp_name);
  end loop;

  /*
  for(Object obj:select id, emp_no, emp_name, dept_no, create_time, update_time FROM T_EMP){
   obj.id
  }
  */

END;

create or replace procedure proc_emp_course_two is
  r_emp T_EMP%ROWTYPE;
  CURSOR cur_emp IS
    SELECT * FROM T_EMP;
begin
  OPEN cur_emp;
  IF cur_emp%ISOPEN THEN
    LOOP
      FETCH cur_emp
        INTO r_emp;
      EXIT WHEN cur_emp%NOTFOUND;
      dbms_output.put_line('id:' || r_emp.id || '   name:' ||
                           r_emp.emp_name);
    END LOOP;
  ELSE
    DBMS_OUTPUT.PUT_LINE('用户信息：游标没有打开！');
  END IF;
  CLOSE cur_emp;
  /*
  for cour in (select id, emp_no, emp_name, dept_no, create_time, update_time FROM T_EMP )loop
    -- java ,javascript +拼接，mysql 用CONCAT函数，oracle 用||
    dbms_output.put_line(cour.id||'   '||cour.emp_name);
  end loop;
  */
END;

create or replace procedure proc_emp_delete(p_emp_no VARCHAR2)
is
begin
  DELETE FROM t_emp WHERE emp_no=p_emp_no;
  dbms_output.put_line('被删除的记录的empno='||p_emp_no);
end;

create or replace procedure proc_emp_insert
(p_empno VARCHAR2,
 p_ename VARCHAR2,
 p_dept_no NUMBER)
is
begin
  INSERT INTO T_EMP(ID,EMP_NO,EMP_NAME,DEPT_NO) VALUES(SEQ_EMP.NEXTVAL,p_empno,p_ename,p_dept_no);
  dbms_output.put_line('插入成功：'||p_empno);
end proc_emp_insert;


create or replace procedure proc_emp_select(CUR_EMP out SYS_REFCURSOR) is
begin
  open CUR_EMP for
    select id, emp_no, emp_name, dept_no, create_time, update_time
      FROM T_EMP;
END;

create or replace procedure proc_emp_update
(p_emp_no IN VARCHAR2,
 p_emp_name IN VARCHAR2,
 p_dept_no IN VARCHAR2
 )
is
begin
  UPDATE t_emp SET emp_name=p_emp_name,dept_no=p_dept_no,update_time=sysdate WHERE emp_no=p_emp_no;
  dbms_output.put_line('被修改的数据的myempno='||p_emp_no);
end proc_emp_update;
